In computer science, a virtual machine (VM) is a portion of software that, when executed on appropriate hardware, creates an environment allowing the virtualization of an actual physical computer system. Each VM may function as a self-contained platform, running its own operating system (OS) and software applications (processes). Typically, hypervisor (also known as a virtual machine monitor (VMM)) manages allocation and virtualization of computer resources and performs context switching, as may be necessary, to cycle between various VMs.
A host machine is typically enabled to host services, applications, or other processes. A host machine may simultaneously run multiple VMs, where each VM may be used by a local or remote client. The host machine allocates a certain amount of the host's resources to each of the VMs. Each VM is then able to use the allocated resources to execute applications, including operating systems known as guest operating systems.
A host controller may monitor the status of multiple host machines. To perform such monitoring, the host controller periodically polls each of the hosts for that host's status. In response, the host sends status information back to the host controller. The status information often has a size of one or more Megabytes. Thus, the repeated polling and response messages consume a significant amount of network resources. Since status information is often unchanged between polling cycles, the network resources are being unnecessarily consumed.